#!/usr/bin/env python
# coding: utf-8

# In[1]:


'''二次函数求积分'''

import numpy as np
import matplotlib.pyplot as plt
from IPython.html.widgets import interact

# 设置二次函数
def E(x): 
    return x**2 +2*x +1

# 画出函数积分图像
def plot1(n):
    x = np.linspace(-6, 6, 100)
    # 设定x轴范围为（-6，6），样本点设为100
    y = E(x)
    plt.plot(x,y,'g') 
    # 画出二次函数图像
    
    # 设置梯形积分线
    a = np.linspace(-6, 6, n)
    for i in range(n):
        plt.plot([a[i],a[i]],[0,E(a[i])],'b') 
        # 画出x=a[i]的二次函数积分线（a[i]，0）到（a[i]，E(a[i]）
    # 存储各点坐标
    l = [];
    for i in range(n):
        l.append([a[i],E(a[i])]) 
    nl= np.array(l)
    plt.plot(nl[:,0],nl[:,1]); 
    # 连接梯形的腰
    
# 设定分布密度
interact(plot1, n=(1, 50, 2)) 
# 分块块在 1 和 50 变化，区间是 2
plt.show()


# In[ ]:




